package com.koi.system.service.dept;

import com.baomidou.mybatisplus.extension.service.IService;
import com.koi.model.bo.element.CascaderStringBo;
import com.koi.model.vo.system.SysDeptVo;
import com.koi.pojo.system.SysDept;

import java.util.List;

/**
 * @author ･ᴗ･
 * @description [部门表-服务实现层接口]
 */
public interface SysDeptService extends IService<SysDept> {


    /**
     * @description [查询分配当前用户的部门数据]
     * @author ･ᴗ･
     */
    List<SysDept> listSysDept(SysDeptVo vo);

    /**
     * @description [部门级联下拉框]
     * @author ･ᴗ･
     */
    List<CascaderStringBo> cascaderList();

    /**
     * @description [根据用户拥有的角色ID查询部门权限数据]
     * @author ･ᴗ･
     */
    List<String> listDeptIdsByRoleId(Long roleId);

    /**
     * @description [保存角色和部门权限之间的关系]
     * @author ･ᴗ･
     */
    void saveRoleDept(Long roleId, List<String> deptIds);

    /**
     * @description [查询所有正常的路由 AND 展开节点（角色分配部门权限使用）]
     * @author ･ᴗ･
     */
    List<SysDept> listDeptNormal(SysDeptVo sysDeptVo);

}
